During the startup of a computer device, a process commonly known as “booting” or “bootstrapping” is executed. The bootstrapping process employs a “bootstrap” program that contain a specific set of instructions to initialize and load the operating system that manages the computer device. Traditionally, such bootstrap programs were stored in the computer device's memory.
Many computer devices, however, currently support network booting processes that enable the devices to communicate with a remote server and obtain system files over a network. Examples of such processes include the use of the Pre-boot Execution Environment (PXE) to download an operating system from a network. Generally, for such processes, the computer device is configured with some type of code in non-volatile memory that will enable the device to obtain the identity of the appropriate bootstrap program from the remote server. The computer device may then gain access and load the identified bootstrap program from a remote file server. Once loaded, the bootstrap program then obtains the operating system image used to manage the device.
Existing network bootstrap programs are geared towards allowing the user to have the flexibility to boot in almost any manner he chooses. These programs typically require entry of input parameters by the user during the run time of the bootstrapping process and, therefore, have no mechanisms to automate the boot selection process or the entry of input parameters.